<?php
/**
 * Smarty shared plugin
 *
 * @package Smarty
 * @subpackage PluginsShared
 */

if (version_compare ( PHP_VERSION, '5.2.3', '>=' )) {
	/**
	 * escape_special_chars common function
	 *
	 * Function: smarty_function_escape_special_chars<br>
	 * Purpose: used by other smarty functions to escape
	 * special chars except for already escaped ones
	 *
	 * @author Monte Ohrt <monte at ohrt dot com>
	 * @param $string string
	 *       	 text that should by escaped
	 * @return string
	 */
	function smarty_function_escape_special_chars($string) {
		if (! is_array ( $string )) {
			$string = htmlspecialchars ( $string, ENT_COMPAT, Smarty::$_CHARSET, false );
		}
		return $string;
	}
} else {
	/**
	 * escape_special_chars common function
	 *
	 * Function: smarty_function_escape_special_chars<br>
	 * Purpose: used by other smarty functions to escape
	 * special chars except for already escaped ones
	 *
	 * @author Monte Ohrt <monte at ohrt dot com>
	 * @param $string string
	 *       	 text that should by escaped
	 * @return string
	 */
	function smarty_function_escape_special_chars($string) {
		if (! is_array ( $string )) {
			$string = preg_replace ( '!&(#?\w+);!', '%%%SMARTY_START%%%\\1%%%SMARTY_END%%%', $string );
			$string = htmlspecialchars ( $string );
			$string = str_replace ( array ('%%%SMARTY_START%%%', '%%%SMARTY_END%%%' ), array ('&', ';' ), $string );
		}
		return $string;
	}
}

?>